/*!-----------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * monaco-languages version: 0.9.0(e162b4ba29044167bc7181c42b3270fa8a467424)
 * Released under the MIT license
 * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md
 *-----------------------------------------------------------------------------*/
define('vs/basic-languages/src/yaml', ['require', 'exports'], function(e, n) {
  'use strict';
  Object.defineProperty(n, '__esModule', { value: !0 }),
    (n.conf = {
      comments: { lineComment: '#' },
      brackets: [['{', '}'], ['[', ']'], ['(', ')']],
      autoClosingPairs: [
        { open: '{', close: '}' },
        { open: '[', close: ']' },
        { open: '(', close: ')' },
        { open: '"', close: '"' },
        { open: "'", close: "'" },
      ],
      surroundingPairs: [
        { open: '{', close: '}' },
        { open: '[', close: ']' },
        { open: '(', close: ')' },
        { open: '"', close: '"' },
        { open: "'", close: "'" },
      ],
    }),
    (n.language = {
      tokenPostfix: '.yaml',
      brackets: [
        { token: 'delimiter.bracket', open: '{', close: '}' },
        { token: 'delimiter.square', open: '[', close: ']' },
      ],
      keywords: ['true', 'True', 'TRUE', 'false', 'False', 'FALSE', 'null', 'Null', 'Null', '~'],
      numberInteger: /(?:0|[+-]?[0-9]+)/,
      numberFloat: /(?:0|[+-]?[0-9]+)(?:\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,
      numberOctal: /0o[0-7]+/,
      numberHex: /0x[0-9a-fA-F]+/,
      numberInfinity: /[+-]?\.(?:inf|Inf|INF)/,
      numberNaN: /\.(?:nan|Nan|NAN)/,
      numberDate: /\d{4}-\d\d-\d\d([Tt ]\d\d:\d\d:\d\d(\.\d+)?(( ?[+-]\d\d?(:\d\d)?)|Z)?)?/,
      escapes: /\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,
      tokenizer: {
        root: [
          { include: '@whitespace' },
          { include: '@comment' },
          [/%[^ ]+.*$/, 'meta.directive'],
          [/---/, 'operators.directivesEnd'],
          [/\.{3}/, 'operators.documentEnd'],
          [/[-?:](?= )/, 'operators'],
          { include: '@anchor' },
          { include: '@tagHandle' },
          { include: '@flowCollections' },
          { include: '@blockStyle' },
          [/@numberInteger(?![ \t]*\S+)/, 'number'],
          [/@numberFloat(?![ \t]*\S+)/, 'number.float'],
          [/@numberOctal(?![ \t]*\S+)/, 'number.octal'],
          [/@numberHex(?![ \t]*\S+)/, 'number.hex'],
          [/@numberInfinity(?![ \t]*\S+)/, 'number.infinity'],
          [/@numberNaN(?![ \t]*\S+)/, 'number.nan'],
          [/@numberDate(?![ \t]*\S+)/, 'number.date'],
          [/(".*?"|'.*?'|.*?)([ \t]*)(:)( |$)/, ['type', 'white', 'operators', 'white']],
          { include: '@flowScalars' },
          [/.+$/, { cases: { '@keywords': 'keyword', '@default': 'string' } }],
        ],
        object: [
          { include: '@whitespace' },
          { include: '@comment' },
          [/\}/, '@brackets', '@pop'],
          [/,/, 'delimiter.comma'],
          [/:(?= )/, 'operators'],
          [/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/, 'type'],
          { include: '@flowCollections' },
          { include: '@flowScalars' },
          { include: '@tagHandle' },
          { include: '@anchor' },
          { include: '@flowNumber' },
          [/[^\},]+/, { cases: { '@keywords': 'keyword', '@default': 'string' } }],
        ],
        array: [
          { include: '@whitespace' },
          { include: '@comment' },
          [/\]/, '@brackets', '@pop'],
          [/,/, 'delimiter.comma'],
          { include: '@flowCollections' },
          { include: '@flowScalars' },
          { include: '@tagHandle' },
          { include: '@anchor' },
          { include: '@flowNumber' },
          [/[^\],]+/, { cases: { '@keywords': 'keyword', '@default': 'string' } }],
        ],
        string: [
          [/[^\\"']+/, 'string'],
          [/@escapes/, 'string.escape'],
          [/\\./, 'string.escape.invalid'],
          [
            /["']/,
            { cases: { '$#==$S2': { token: 'string', next: '@pop' }, '@default': 'string' } },
          ],
        ],
        multiString: [[/^( +).+$/, 'string', '@multiStringContinued.$1']],
        multiStringContinued: [
          [
            /^( *).+$/,
            { cases: { '$1==$S2': 'string', '@default': { token: '@rematch', next: '@popall' } } },
          ],
        ],
        whitespace: [[/[ \t\r\n]+/, 'white']],
        comment: [[/#.*$/, 'comment']],
        flowCollections: [[/\[/, '@brackets', '@array'], [/\{/, '@brackets', '@object']],
        flowScalars: [[/"/, 'string', '@string."'], [/'/, 'string', "@string.'"]],
        blockStyle: [[/[>|][0-9]*[+-]?$/, 'operators', '@multiString']],
        flowNumber: [
          [/@numberInteger(?=[ \t]*[,\]\}])/, 'number'],
          [/@numberFloat(?=[ \t]*[,\]\}])/, 'number.float'],
          [/@numberOctal(?=[ \t]*[,\]\}])/, 'number.octal'],
          [/@numberHex(?=[ \t]*[,\]\}])/, 'number.hex'],
          [/@numberInfinity(?=[ \t]*[,\]\}])/, 'number.infinity'],
          [/@numberNaN(?=[ \t]*[,\]\}])/, 'number.nan'],
          [/@numberDate(?=[ \t]*[,\]\}])/, 'number.date'],
        ],
        tagHandle: [[/\![^ ]*/, 'tag']],
        anchor: [[/[&*][^ ]+/, 'namespace']],
      },
    });
});
